package com.classtype.forName.demo1;

/**
 * Class对象的应用
 * 
 * @author Administrator
 * 
 */
public class Test {

	static void printInfo(Class cc) {
		System.out.println("Class name: " + cc.getName() + " is interface? ["
				+ cc.isInterface() + "]");
		System.out.println("Simple name: " + cc.getSimpleName());
		System.out.println("Canonical name: " + cc.getCanonicalName());
	}

	public static void main(String[] args) {
		Class c = null;
		try {
			c = Class.forName("com.classtype.forName.demo1.FancyToy");
		} catch (ClassNotFoundException e) {
			System.out.println("Can't find FancyToy");
			System.exit(1);
		}

		printInfo(c);

		for (Class face : c.getInterfaces()) {
			printInfo(face);
		}

		Class up = c.getSuperclass();
		Object obj = null;
		try {
			obj = up.newInstance();
		} catch (InstantiationException e) {
			System.out.println("Can't instantiate");
			System.exit(1);
		} catch (IllegalAccessException e) {
			System.out.println("Can't access");
			System.exit(1);
		}
		printInfo(obj.getClass());
	}

}
